<script setup lang="ts">
import { useRouter } from 'vue-router'

// 相当于以前的 this.$router
const router = useRouter()

const onClickLeft = () => {
  // 多了一个可选属性,自定义后退逻辑
  if (props.back) return props.back()
  // 左侧箭头点击后退功能
  // 这里用到一个原生对象 history 里面的 state 属性
  console.log(history.state)

  if (history.state.back) {
    router.back()
  } else {
    router.push('/')
  }
}

// 相当于之前vue2 的 this.$emit
const emit = defineEmits<{
  (e: 'rightClick'): void
}>()

const onClickRight = () => {
  // 点击右侧文字, 通知父组件后续处理
  emit('rightClick')
}

// 定义两个可接受的属性, 处理标题和右侧文字内容
const props = defineProps<{
  title?: string
  rightText?: string
  // 多接受一个可选数据, 如果有, 就是自定义返回按钮
  back?: () => void
}>()
</script>

<template>
  <van-nav-bar
    fixed
    left-arrow
    placeholder
    :title="title"
    :right-text="rightText"
    @click-left="onClickLeft"
    @click-right="onClickRight"
  ></van-nav-bar>
</template>

<style lang="scss" scoped>
:deep() {
  .van-nav-bar {
    &__arrow {
      font-size: 18px;
      color: var(--cp-text1);
    }
    &__text {
      font-size: 15px;
    }
  }
}
</style>
